Skip to content

Avoid race condition for forked process in test suite#14

Merged
clue merged 1 commit intoclue:masterfrom
clue-labs:race
May 15, 2019
Merged

Avoid race condition for forked process in test suite#14
clue merged 1 commit intoclue:masterfrom
clue-labs:race

Conversation

@clue
Copy link
Owner

@clue clue commented May 15, 2019

There's a very short race condition where the forked php process first
has to dup() the file descriptor specs before invoking exec() to
switch to the actual ssh child process. We don't need to wait for the
child process to be ready, but only for the forked process to close the
file descriptors. This happens ~80% of times on single core machines and
almost never on multi core systems, so simply wait 5ms (plenty of time!)
and retry again.

Builds on top of clue/reactphp-sqlite#15 and #10

There's a very short race condition where the forked php process first
has to `dup()` the file descriptor specs before invoking `exec()` to
switch to the actual `ssh` child process. We don't need to wait for the
child process to be ready, but only for the forked process to close the
file descriptors. This happens ~80% of times on single core machines and
almost never on multi core systems, so simply wait 5ms (plenty of time!)
and retry again.

Builds on top of clue/reactphp-sqlite#15
@clue clue added this to the v1.2.0 milestone May 15, 2019
@clue clue merged commit dcaddcc into clue:master May 15, 2019
@clue clue deleted the race branch May 15, 2019 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant